package cn.niit.pm.service;

import com.github.pagehelper.PageInfo;
import org.springframework.transaction.annotation.Transactional;

/**
 * 控制增删查改方法
 * @author
 */
public interface ServiceInterface<T> {

    /**
     *
     * @param t 实体类
     * @param pageSize 分页数
     * @param pageNumber 页数
     * @return  返回分页
     */
    public PageInfo select(T t, int pageSize, int pageNumber);

    /**
     *修改 / 新增 接口
     * @param t 实体类
     *          Transactional 开启事务
     */
    @Transactional(rollbackFor = {Exception.class})
    public void insert(T t);
    @Transactional(rollbackFor = {Exception.class})
    public void update(T t);
    /**
     * 删除接口
     * @param id 数据ID
     *            Transactional 开启事务
     */
    @Transactional(rollbackFor = {Exception.class})
    public void delete(Integer id);

    /**
     * 根据id查询
     * @param id
     * @return
     */
    public T selectById(Long id);
}
